package com.liao.note.util;

import com.liao.note.domain.Note;
import com.liao.note.service.NoteService;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

@Slf4j
//必须要注册到spring的容器
//不能new这个类，只能在spring的容器里面获取
@Component
public class AsyncUtil {

    @Autowired
    private NoteService noteService;

    /**
     * 删除服务器的头像图片。
     * <p>
     * 不能和调用者在同一个类下。
     *
     * @param files
     */
    @Async
    public void delAudio(ArrayList<File> files) {

    }

    @Async
    public void changeAudio(ArrayList<File> files, Integer userId) {
        for (File file : files) {
            try {
                JSONObject jsonObject = PutAudioToAI.putAudioToAI(file.getPath());
                System.out.println("jsonObject--------->>>>>>>>" + jsonObject);
                if (!jsonObject.getString("err_msg").equals("success.")) {
                    return;
                }
                String content = jsonObject.getJSONArray("result").getString(0);
                Note note = new Note();
                note.setTitle("");
                note.setHasAudio(1);
                note.setContent(content);
                note.setCategoryId(-1);
                note.setAudioPath(file.getPath());
                String newName = file.getName().replace("n", "y");
                note.setAudioName(newName);
                note.setUserId(userId);
                noteService.addNote(note);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
